package com.feihong.txgw.inter.contract.integral;

import com.feihong.txgw.model.bean.integral.IntegralBackEntity;
import com.feihong.txgw.ui.mvp.model.IBaseModel;
import com.feihong.txgw.ui.mvp.precenter.AbBasePrecenter;
import com.feihong.txgw.ui.mvp.view.IBaseActivity;

import java.util.List;

import io.reactivex.Observable;

/**
 * @Author wangziheng
 * @ProjectName txgw_app
 * @ClassName IIntegralContract
 * @package com.feihong.txgw.inter.contract.integral
 * @data 2018/5/3 16:22
 * @Describe
 * @Change
 */
public interface IIntegralContract {
    interface IIntegralMainView extends IBaseActivity{
        /**
         * 获取200的数据集
         * @param integralBackEntity
         * @param isFullPage
         */
        void setBackIntegralData(boolean isFullPage,List<IntegralBackEntity.DataBean.PageListBean> integralBackEntity);

        /**
         * 没有数据
         */
        void notData();

        /**
         * 其他错误提示
         * @param errorMsg
         */
        void dataOtherError(String errorMsg);
    }

    interface IIntegralMainModel extends IBaseModel{
        /**
         * 获取积分
         * @param cacheKey  缓存key
         * @param requestType  积分类型  1  积分明细 2 待返积分
         * @param pageNum  页数
         * @return
         */
        Observable<IntegralBackEntity> getBackIntegralData(String cacheKey,String requestType,int pageNum);
    }

    abstract class AbIntegralMainPrecenter extends AbBasePrecenter<IIntegralMainModel,IIntegralMainView>{
        public abstract void loadBackIntegralData(String cacheKey,String requestType);

        /**
         * 第一次获取积分信息
         * @param cacheKey
         * @param requestType
         */
        public abstract void loadIntegralDataFirst(String cacheKey,String requestType);
    }
}
